TargetKind::Example => a.is_example(),
TargetKind::Lib(_) => false,
};
- let matches_name = name.as_ref().map_or(true, |n| n.as_slice() == a.get_name());
- matches_kind && matches_name && a.get_profile().get_env() == env &&
- !a.get_profile().is_custom_build()
+ let matches_name = name.as_ref().map_or(true, |n| *n == a.name());
+ matches_kind && matches_name && a.profile().env() == env &&
+ !a.profile().is_custom_build()
});
let bin = try!(bins.next().chain_error(|| {
- human("a bin target must be available for `cargo run`")
+ match (name.as_ref(), &target_kind) {
+ (Some(name), &TargetKind::Bin) => {
+ human(format!("no bin target named `{}` to run", name))
+ }
+ (Some(name), &TargetKind::Example) => {
+ human(format!("no example target named `{}` to run", name))
+ }
+ (Some(_), &TargetKind::Lib(..)) => unreachable!(),
+ (None, _) => human("a bin target must be available for `cargo run`"),
+ }
}));
match bins.next() {
Some(..) => return Err(